package models

import (
	"time"
)

//用户表
type User struct {
	Id         int64     //用户ID 主键
	Name       string    `orm:"size(20)"`                    //用户名
	Password   string    `orm:"size(200)"`                   //密码（MD5加密）
	CreateTime time.Time `orm:"auto_now_add;type(datetime)"` //创建时间，自动写入
	Balance    float64   `orm:"null"`                        //账户余额
}

//订单表
type Order struct {
	Id          int64     //订单ID 主键
	Number      string    //订单编号
	FilmId      int64     //电影ID
	UserId      int64     //对应用户
	OrderStatus string    `orm:"1"` //订单状态,0:已购买，1:未购买
	SeatId      int64     //座位ID
	TotalPrice  float64   //总价
	Cancel      bool      `orm:"0"` //订单是否被取消（取消订单则标记为true）
	TickerNum   int64     //电影票数
	Refundtime  time.Time `orm:"null"` //退票时间
}

//电影表
type Film struct {
	Id           int64     //电影ID 主键
	FilmName     string    //电影片名
	SessionPrice float64   //票价
	StartDate    time.Time //电影上映时间
	FilmStatus   int8      //电影状态：0表示待映，1表示在映
	Director     string    //电影导演
	Cast         string    //主演
	Style        string    //类型
	Version      string    //版本
	FilmIntro    string    //电影简介
	Duration     string    //电影片长，如115分钟
}

//座位表
type Seat struct {
	Id           int64     //座位ID 主键
	FilmId       int64     //电影ID
	UserId       int64     `orm:"null"` //对应的用户Id
	CinemaName   string    `orm:"null"` //影院名字
	Site         string    `orm:"null"` //影院地址
	FilmName     string    `orm:"null"` //电影名字
	SessionPrice float64   //该场次的票价
	Languatge    string    //语言
	ScreenType   int8      //影厅类型：1代表2D影厅，2代表3D影厅，3代表IMAX巨幕影厅，4代表IMAX3D巨幕影厅
	Seatnum      string    `orm:"null"` //座位号
	StartTime    time.Time //该场次开始放映时间
	SeatStatus   bool      `orm:"0"` //是否被预定，默认为false
}
